A possibility of synchronizing a first clock to a reference clock used as an accurate time server can constitute an important feature in a variety of systems, in particular in systems in which several clocks have to work synchronously.
A known and accurate method for synchronizing a first clock to a second clock is based on the network time protocol (NTP). A calculation of offsets between two different clocks based on NTP is described for example by David L. Mills in: “Internet Time Synchronization: the Network Time Protocol”, IEEE Trans. Communications 39, 10 (October 1991), 1482–1493. The Network Time Protocol and related nomenclature is also described in the Internet draft by David L. Mills: “Network Time Protocol (Version 3) specification, implementation and analysis. Network Working Group Report” RFC-1305, University of Delaware, Mar. 1992.
According to the document “Internet Time Synchronization: the Network Time Protocol”, in order to determine the offset between a time server and a peer, i.e. one of several clocks that are to be synchronized to the time server, an NTP message is sent from the server to the peer. Subsequently, another NTP message is sent from peer to server. A timestamp is generated for each point of time in which a NTP message is transmitted or received. Each NTP message includes the latest three generated timestamps, i.e. a timestamp for indicating the time of transmission and reception of the previous message and a timestamp indicating the time of transmission of the current message. A fourth timestamp indicating the time of reception of the current message is determined upon arrival of the message.
In the document, the offset Θi of the peer relative to the server is determined to
            Θ      i        =                  a        +        b            2        ,where a is the difference between reception of the first message and transmission of the first message, while b is the difference between transmission of the second message and reception of the second message. The effect of statistical errors and falsetickers can be minimized by the use of rather complex filtering and selection algorithms described in the above mentioned Internet draft RFC-1305.
The same method could be applied for synchronizing two or more peer clocks of which only some are connected directly to a time server, but where each peer is connected at least via another peer to the time server. In such a system, the time server constitutes a primary server NTP clock for all directly connected client NTP clocks. These client NTP clocks form at the same time server NTP clocks for other client NTP clocks connected to them, and so forth.
It is not always possible, though, to implement an NTP client in the element with a clock that is to be synchronized. Therefore, an alternative option is required for synchronizing a clock to a reference clock indirectly, in particular via some processing unit. An obvious solution would then be to use the processing unit as NTP client that is synchronized to a reference clock of an NTP server and to synchronize the third clock based on the inaccurate clock.
However, such a processing unit may constitute a weak link in the connection between the clock that is to be synchronized and the reference clock, e.g. if the processing unit is an element with a clock that is less accurate than the clock which is to be synchronized. For many applications, therefore, such a proceeding does not lead to a satisfying accuracy of synchronization.